package com.uxhuanche.ui.helper;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class CheckUtil {

    /**
     * 描述：判断一个字符串是否为null或空值.
     *
     * @param str 指定的字符串
     * @return true or false
     */
    public static boolean isEmpty(String str) {
        return str == null || str.trim().length() == 0;
    }

    public static boolean isNotEmpty(String str) {
        return !isEmail(str);
    }

    /**
     * 描述：手机号格式验证.
     *
     * @param str 指定的手机号码字符串
     * @return 是否为手机号码格式:是为true，否则false
     */
    public static boolean isPhone(String str) {
        boolean isMobileNo = false;
        try {
            Pattern p = Pattern.compile("^((1[0-9]))\\d{9}$");
            Matcher m = p.matcher(str);
            isMobileNo = m.matches();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return isMobileNo;
    }

    /**
     * 描述：是否是邮箱.
     *
     * @param str 指定的字符串
     * @return 是否是邮箱:是为true，否则false
     */
    public static boolean isEmail(String str) {
        boolean isEmail = false;
        String expr = "^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$";
        if (str != null && str.matches(expr)) {
            isEmail = true;
        }
        return isEmail;
    }

    /**
     * @param content 原始字符串
     * @param count   提取的数字个数
     * @return
     */
    public static String getNumberCode(String content, int count) {
        // 首先([a-zA-Z0-9]{6})是得到一个连续的六位数字字母组合
        // (?<![a-zA-Z0-9])负向断言([0-9]{YZMLENGTH})前面不能有数字
        // (?![a-zA-Z0-9])断言([0-9]{YZMLENGTH})后面不能有数字出现
        //  获得纯数字
        Pattern p = Pattern.compile("(?<![0-9])([0-9]{" + count + "})(?![0-9])");
        Matcher m = p.matcher(content);
        if (m.find()) {
            return m.group(0);
        }
        return null;
    }

    /**
     * @param content
     * @param pattern
     * @return
     */
    public static String getPatternStr(String content, String pattern) {
        Pattern p = Pattern.compile(pattern);
        Matcher m = p.matcher(content);
        if (m.find()) {
            return m.group(0);
        }
        return null;
    }
}
